package org.server.http.core;

import java.io.ByteArrayOutputStream;
import java.util.Map;

/**
 * 响应对象
 * 
 * @author Admin
 * 
 */
public class HttpResponse {
	// 状态码
	private int status;
	// 转发路径
	private String sendredirectURI;
	// 响应类型
	private String contentType;

	// 编码
	private String charset;
	// 其它响应头集合
	private Map<String, String> header;
	// 数据写入流
	private ByteArrayOutputStream outputStream;

	// 缺省构造
	public HttpResponse() {
		outputStream = new ByteArrayOutputStream();
	}

	/**
	 * 返回设置的状态码
	 * 
	 * @return
	 */
	public int getStatus() {
		return status;
	}

	/**
	 * 获取数据写入流
	 * 
	 * @return
	 */
	public ByteArrayOutputStream getOutputStream() {
		return outputStream;
	}

	/**
	 * 设置状态码
	 * 
	 * @param status
	 */
	public void setStatus(int status) {
		this.status = status;
	}

	/**
	 * 获取转发路径
	 * 
	 * @return
	 */
	public String getSendredirectURI() {
		return sendredirectURI;
	}

	/**
	 * 设置转发路径
	 * 
	 * @param sendredirectURI
	 */
	public void setSendredirectURI(String sendredirectURI) {
		// 设置响应码
		status = 302;
		// 设置重定向资源位置
		this.sendredirectURI = sendredirectURI;
	}

	/**
	 * 返回响应类型
	 * 
	 * @return
	 */
	public String getContentType() {
		return contentType;
	}

	/**
	 * 设置响应类型
	 * 
	 * @param contentType
	 */
	public void setContentType(String contentType) {
		this.contentType = contentType;
	}

	/**
	 * 返回内容字节长度
	 * 
	 * @return
	 */
	public int getContentLength() {
		return outputStream.size();
	}

	/**
	 * 获取字符集
	 * 
	 * @return
	 */
	public String getCharset() {
		return charset;
	}

	/**
	 * 设置字集集
	 * 
	 * @param charset
	 */
	public void setCharset(String charset) {
		this.charset = charset;
	}

	/**
	 * 返回其它响应头
	 * 
	 * @return
	 */
	public Map<String, String> getHeader() {
		return header;
	}

	/**
	 * 设置响应头
	 * 
	 * @param header
	 */
	public void setHeader(Map<String, String> header) {
		this.header = header;
	}

}
